/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.mowa.biblioteca.dao.hibernate;

import com.mowa.biblioteca.dao.UsuarioLibroDao;
import com.mowa.biblioteca.model.EstadoUsuarioLibro;
import com.mowa.biblioteca.model.Libro;
import com.mowa.biblioteca.model.Usuario;
import com.mowa.biblioteca.model.Usuariolibro;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Component;

/**
 *
 * @author Osamu
 */
@Component
public class UsuarioLibroDaoHibernate  extends HibernateDaoSupport implements UsuarioLibroDao {
    @Autowired
    public UsuarioLibroDaoHibernate(SessionFactory  sessionFactory) {
        setSessionFactory(sessionFactory);
    }

    @Override
    public List<Usuariolibro> obtenerUsuariolibro(Usuariolibro obj) {
        StringBuilder query = new StringBuilder("FROM Usuariolibro ul ");
/*
        if (obj.getLibro().getIdlibro() > 0) {
            query.append(" and ul.idlibro = ").append(obj.getLibro().getIdlibro()).append(";");
        }
        if (obj.getUsuario().getIdusuario() > 0) {
            query.append(" and ul.idusuario = ").append(obj.getUsuario().getIdusuario()).append(";");
        }
      

        if (obj.getEstadousuariolibro().getIdestado() > 0) {
            query.append(" where ul.idestado=").append(obj.getEstadousuariolibro().getIdestado());
        }
 */
        List list = getHibernateTemplate().find(query.toString());
        return list;
    }

    @Override
    public List<Usuariolibro> obtenerReservas() {
        StringBuilder query = new StringBuilder("FROM Usuariolibro where idestado=1");

        List list = getHibernateTemplate().find(query.toString());
        return list;
    }


    @Override
    public Usuariolibro obtenerUsuariolibro(int id) {
        Usuariolibro userlibro = null;
        userlibro = (Usuariolibro) getHibernateTemplate().get(Usuariolibro.class, id);
        return userlibro;
    }

    @Override
    public void grabarUsuariolibro(Usuariolibro obj) {
         getHibernateTemplate().save(obj);
    }

    @Override
    public void modificarUsuariolibro(Usuariolibro obj) {
         getHibernateTemplate().update(obj);
    }

    @Override
    public List<Usuario> listarUsuarios() {
        StringBuilder query = new StringBuilder("FROM Usuario u where activo=1");
        List<Usuario> list = getHibernateTemplate().find(query.toString());
        return list;
    }

    @Override
    public List<EstadoUsuarioLibro> obtenerListaEstadoUsuarioLibro() {
        StringBuilder query = new StringBuilder("FROM EstadoUsuarioLibro eul");
        List list = getHibernateTemplate().find(query.toString());
        return list;
    }
    @Override
    public List<Libro> obtenerLibros() {
        StringBuilder query = new StringBuilder("FROM Libro l where activo=1");
        List list = getHibernateTemplate().find(query.toString());
        return list;
    }


}
